package com.lvyou.ctrl.mgr;

import com.github.pagehelper.PageInfo;
import com.lvyou.entity.UserModel;
import com.lvyou.model.JsonResult;
import com.lvyou.model.JsonResultPage;
import com.lvyou.service.MgrUserSrv;
import org.apache.commons.beanutils.BeanUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("/mgr/user")
public class MgrUserCtrl {

    @Resource(name="MgrUserSrv")
    private MgrUserSrv srv;

    @RequestMapping("list")
    public JsonResult list(String phone, String name, @RequestParam("page") String pageNum,@RequestParam("limit") String pageSize){
        int pageNumInt=0;
        int pageSizeInt=10;
        if(pageNum!=null && !"".equals(pageNum)) {
            pageNumInt=Integer.parseInt(pageNum);
        }
        if(pageSize!=null && !"".equals(pageSize)) {
            pageSizeInt=Integer.parseInt(pageSize);
        }

        JsonResultPage jr=new JsonResultPage();
        try{
            PageInfo<UserModel > page=srv.list(phone,name,pageNumInt,pageSizeInt);

            List<UserModel> list=page.getList();
            List<Map> dataList=new ArrayList(list.size());
            for(UserModel um:list){
                Map map= BeanUtils.describe(um);
                String role=um.getRole();
                String status=um.getStatus();

                if("100".equals(role)){
                    map.put("role","普通用户");
                }else if("200".equals(role)){
                    map.put("role","VIP用户");
                }else{
                    map.put("role","未知");
                }

                if("1".equals(status)){
                    map.put("status","正常");
                }else if("2".equals(status)){
                    map.put("status","禁止登录");
                }else{
                    map.put("status","未知");
                }
                SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
                String createTime=sdf.format(um.getCreateTime());
                map.put("create_time",createTime);
                map.remove("class");
                dataList.add(map);
            }
            jr.setData(dataList);
            jr.setTotal(page.getTotal());
        }catch (Exception e){
            e.printStackTrace();
            jr.setCode(100000);
            jr.setMsg("发生错误！");
        }



        return jr;
    }
    @RequestMapping("resetPwd")
    public JsonResult resetPwd(String id){
        JsonResult jr=new JsonResult();

        try {
            int i=srv.resetPwd(id);
            if(i>0){
                jr.setCode(0);
                jr.setMsg("重置密码成功！");
            }else{
                jr.setCode(1);
                jr.setMsg("重置密码失败！");
            }
        }catch (Exception e){
            e.printStackTrace();
            jr.setCode(100000);
            jr.setMsg("发生错误！");
        }

        return jr;
    }
}
